This invention is in the field of video data and the provision of video data to users. In particular, it relates to methods and apparatus for decompresing compressed video data.
For purposes of this description, video data typically comprises the video and audio data contained in a stored video program. However, other data including but not limited to text and graphics may be included in the video data without in any way affecting the operation of the present invention or the substance of this description. All references herein to video data should therefore be considered in the broadest sense.
Video servers for providing video data to users are known. Although uncompressed video data can be stored in such servers and sent to users, the sheer amount of data in even a short video program usually requires that the video data be stored and manipulated in a compressed form. Methods and apparatus for accomplishing the compression and decompression of video data are known.
One known compression format is sponsored by the Motion Picture Expert Group and is known as MPEG. Although both an MPEG-1 and an MPEG-2 compression format are known, their differences are not relevant to the present invention.
MPEG compression is based on the fact that from one frame of video data to the next, there are comparatively few changes, even when objects or persons are in motion. It is therefore not necessary to store all of the video data contained in each frame. Rather, after a base frame has been stored, each successive frame can be recreated by storing only the video data that describes objects or persons that have either changed or moved. Periodically, a complete frame of video data must be stored to re-initialize the process. This type of data compression is called motion compensation.
MPEG compressed video data consists of three types of frames. The first, an intra coded frame (hence, an I-frame) provides all the video data needed to fully describe that particular frame. A predicted frame (hence, a P-frame) provides only information about how the P-frame differs from the last I- or P-frame. Finally, a bi-directional frame (hence, a B-frame) provides information about how the B-frame differs from both the preceding I- or P-frame and the next I- or P-frame. The decompression of the video data contained in a B-frame requires the decompression of two frames, either both I-frames, an I-frame and P-frame, or both P-frames. Decompressing a P-frame requires the video data contained in the preceding P- or I-frame. Typically, storing an I-frame requires three times as many bits as a P-frame, and storing a P-frame requires roughly three times as many bits as a B-frame. These relative storage requirements of the I-, B-, and P-frames are provided only for comparison purposes and no limitation of the present invention to the stated relative storage requirements should be implied.
FIG. 1 shows the typical transmission and display order of a series of MPEG compressed video data frames. As P-frames need the video data contained in a decoded I-frame to be decoded, and as B-frames need the video data contained in either or both a decoded I-frame and a P-frame, the transmission order of compressed MPEG frames differs from the display order of decompressed MPEG frames. Both the transmitted and displayed frames begin with an I-frame, and another I-frame occurs roughly every fifteen frames thereafter. During transmission, two B-frames are preceded by a P-frame. When displayed, after the first I-frame, two B-frames follow, and then a P-frame. As neither a B-frame or a P-frame can be decompressed without reference to an I-frame, all compressed video data streams must begin with an I-frame.
A known architecture for decoding MPEG video data streams is shown in FIG. 2. Decompression system 10 consists of compressed video data buffer 11, decoder 13, and decompressed video data buffer 17. An input bus 15 provides a stream of compressed MPEG video data to buffer 11. As bus 15 provides video data at a fixed rate, some time elapses before enough video data is stored in buffer 11 for decoder 13 to begin decompressing the video data.
A latency time exists before enough video data enters buffer 11 for decoder 13 to begin decompression. This latency time is herein called buffer filling latency time. An even longer latency time occurs due to the nature of the MPEG video data. Either an I-frame and a P-frame, two P-frames, or two I-frames must be decompressed and available before a B-frame can be decompressed. Typically two B-frames are transmitted after a P-frame. The system must receive and decompress these I- and/or P-frames before the B-frames can be decompressed. The time required for this decoding and reordering is herein called a reordering latency time.
The effect of the reordering latency time is noticeable every time a new video program begins. The reordering latency time and the buffer filling latency time together result in the system generating several blank frames between the old and new video programs while the new video program is decompressed sufficiently for display. In some known systems, as many as eight such blank frames are generated between two consecutive video programs. These blank frames are highly undesirable.
At present, no known system corrects this deficiency at acceptable cost.